mm: ensure useful progress in decrease_reservation
authorWei Liu <wei.liu2@citrix.com>
Fri, 28 Feb 2014 16:35:15 +0000 (17:35 +0100)
committerJan Beulich <jbeulich@suse.com>
Fri, 28 Feb 2014 16:35:15 +0000 (17:35 +0100)
commit79de2d31f1ff8910231b7ec15519405953e6571a
treeaf7332c818745bae4e977d3c8b4e5540953d48a5
parente0fabe8e81000c924d211e4731d0626357630c69
mm: ensure useful progress in decrease_reservation

During my fun time playing with balloon driver I found that hypervisor's
preemption check kept decrease_reservation from doing any useful work
for 32 bit guests, resulting in hanging the guests.

As Andrew suggested, we can force the check to fail for the first
iteration to ensure progress. We did this in d3a55d7d9 "x86/mm: Ensure
useful progress in alloc_l2_table()" already.

After this change I cannot see the hang caused by continuation logic
anymore.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Keir Fraser <keir@xen.org>
xen/common/memory.c